﻿using GDM.Hogar.Aplicacion.Properties;
using GDM.Hogar.Managers.Contratos;
using System;
using System.Windows.Forms;

namespace GDM.Hogar.Aplicacion.Formularios.Configuracion
{
    public partial class HogarUC : UserControl, IUserControl
    {
        private readonly IHogarManager _hogarManager;

        public Entidades.Hogar Hogar { get; private set; }

        public HogarUC(IHogarManager hogarManager)
        {
            if (hogarManager == null)
                throw new ArgumentNullException("hogarManager");

            _hogarManager = hogarManager;
            InitializeComponent();
        }

        private void BindearDatosHogar()
        {
            txtNombre.DataBindings.Add("Text", Hogar, "Nombre");
            txtDescripcion.DataBindings.Add("Text", Hogar, "Descripcion");
            txtTelefono.DataBindings.Add("Text", Hogar, "Telefono");
            txtDireccion.DataBindings.Add("Text", Hogar, "Direccion");
            txtCooperativa.DataBindings.Add("Text", Hogar, "Cooperativa");
        }

        private void HogarUC_Load(object sender, EventArgs e)
        {
            Hogar = _hogarManager.ObtenerHogar();
            BindearDatosHogar();
        }

        private void ActualizarHogar()
        {
            try
            {
                _hogarManager.ActualizarHogar(Hogar);
                MessageBox.Show(Resources.Hogar_ActualizacionConExito);
                var frm = this.ParentForm as FrmConfiguracion;
                if (frm != null)
                {
                    if (frm.OnHogarActualizado != null)
                        frm.OnHogarActualizado(Hogar);
                }
            }
            catch (Exception ex)
            {
            }
        }

        public void LimpiarValidador()
        {
            hogarValidator.Clear();
        }

        private void btnGuardarDatosHogar_Click(object sender, EventArgs e)
        {
            if (!hogarValidator.Validate()) return;

            ActualizarHogar();
        }
    }
}